מתחיל בראיון טלפוני של כשעה בו יש שאלות אישיות כלליות ולאחר מכן שאלת קוד. אם עוברים יש יום נוסף בו מתקיימים 2 ראיונות רצופים (כל אחד כשעה). הראיונות מתחלקים בערך 30% אישיותי, 70% טכני.
טלפונית 2 שאלות טכניות ואחת אישית.
1. למצוא את האיבר השני הכי קטן במערך.
2.לממש תור בעזרת רשימה
3. ספר על פעם שעבדת בקבוצה עם עוד אנשים ולא הסכמתם על סטנדרטים של ביצוע המשימה
תשובות
הוסף תשובה
|
לצפיה בתשובות
נובמבר 2019
1. לעבור על המערך ולהחזיק 2 משתנים עבור מינימום
2. להחזיק מצביע על תחילת הרשימה ומצביע על סופה
דצמבר 2019
#include
#include // std::numeric_limits
#include
int main()
{
int array[] = {12, 13, 1, 10, 34, 1, 0};
int smallest = std::numeric_limits::max();;
int secondSmallest = std::numeric_limits::max();
for(int num : array) {
if (num < smallest) {
secondSmallest = smallest;
smallest = num;
} else if ( num > smallest && num < secondSmallest) {
secondSmallest = num;
}
}
1. ליצור עם ערימת מינימום בגודל 2, לעבור על המערך וכל איבר שהו גדול מהמינימום הערימה למחוק את המינימום מהערימה ולהכניס אותו.
בסוף הריצה להחזיר את המינימלי מהערימה
מאתחלים מערך NONE בעל מספר איברים זהה למערך המקורי.
רצים בלולאה בגודל המערך המקורי size=len(x)1 תתעלמו מהספרה 1 בסוף
עושים שימוש ב random.randint(0,size-1)1 כאשר X זה המערך המקורי.תתתעלמו גם פה מה-1
מבצעים השמה למערך החדש במיקום לפי אינדקס הלולאה
מסירים את האיבר מהמערך המקורי
מקטינים את גודל המשתנה size
לבסוף יש לבצע השמה ל-X של המערך שיצרנו כי הפונק' shuffle משנה את המערך המקורי.
להזכירכם, הסרנו איברים מהמערך המקורי עד שהוא התרוקן ולכן יש לבצע השמה מחדש
ינואר 2020
def shuffle_(arr)
i = arr.size-1
while (i > 0)
index = rand(i)
temp = arr[index]
arr[index]=arr[i]
arr[i] = temp
i-=1
end
arr
end